package cn.itcast.service;

import cn.itcast.entity.PageResult;
import cn.itcast.pojo.Menu;

import java.util.List;
import java.util.Map;

public interface MenuService {
    /**
     * 找到所有
     *
     * @return {@link List<Menu>}
     */
    List<Menu> findAll();

    /**
     * 查找菜单进行分页
     *
     * @param currentPage 当前页面
     * @param pageSize    页面大小
     * @return {@link PageResult}
     */
    PageResult findByPage(Integer currentPage, Integer pageSize);

    /**
     * 添加菜单
     *
     * @param permissionIds ids允许
     */
    void addMenu(Integer[] permissionIds, Menu menu);

    /**
     * 通过id找到菜单
     *
     * @param id id
     * @return {@link Menu}
     */
    Menu findMenuById(String id);

    /**
     * 通过菜单找到权限id
     *
     * @param id id
     * @return {@link Integer[]}
     */
    Integer[] findPermissionByMenuId(Integer id);

    /**
     * 更新菜单中属性
     *
     * @param permissionIds ids允许
     * @return boolean
     */
    void updateMenu(Integer[] permissionIds, Menu menu);

    /**
     * 删除菜单通过id
     *
     * @param id id
     */
    void deleteMenuById(Integer id);
}
